package com.zpf.config;

import feign.Contract;
import feign.Feign;
import feign.auth.BasicAuthRequestInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Scope;

/**
 * @ClassName: EurekaAuthConfiguration
 * @Description: TODO
 * * 不用添加@Configuration。
 * * 如果添加了@Configuration而且又放在了主类之下，那么就会所有Feign客户端实例共享，
 * * 同Ribbon配置类一样父子上下文加载冲突；如果一定添加@Configuration，就放在主类加载之外的包。
 * * 建议还是不用加@Configuration。
 * @Autor: ZPF
 * @Date: 2021/1/15 9:40
 **/
//@Configuration
public class EurekaAuthConfig {

    @Bean
    public BasicAuthRequestInterceptor basicAuthRequestInterceptor(){
        return new BasicAuthRequestInterceptor("admin", "admin");
    }

    /**
     * 在该配置中，加入这个方法的话，表明使用了该配置的地方，就会禁用该模块使用 Hystrix 容灾降级的功能；
     *
     * @return
     */
    @Bean
    @Scope("prototype")
    public Feign.Builder feignBuilder(){
        return Feign.builder();
    }

}
